地点間の距離を計算する2通りの方法を紹介.
ggmapパッケージのgeocode関数を使えば住所または地名から緯度?経度の座標を取得できる.
location : 住所または地名の文字列ベクトルsource : ジオコーディングに利用するサービスを指定, GoogleMapsAPI("google")またはData Science Toolkit("dsk")が利用可能, デフォルトは"google"library(ggmap)
cities <- c("Hirosihma","Kyoto","Tokyo","Sapporo")
lonlat <- geocode(cities)
df <- data.frame(lonlat,row.names = cities)
df##                lon      lat
## Hirosihma 132.4553 34.38520
## Kyoto     135.7680 35.01164
## Tokyo     139.6917 35.68949
## Sapporo   141.3544 43.06210
ggmapパッケージのmapdist関数を使えばGoogleMapを用いた地図上の道のり距離を計算できる. 始点fromと終点toの住所または地名を入力することで、GoogleMapsApiに接続して計算する.
from, to : 始点と終点の住所または地名mode : 移動手段として車"driving"(デフォルト), 徒歩"walking", 自転車"bicycling"から選択する広島と京都の地図上の道のり距離(車で移動):
mapdist(from = "Hiroshima", to = "Kyoto")##        from    to      m      km    miles seconds minutes    hours
## 1 Hiroshima Kyoto 361152 361.152 224.4199   16692   278.2 4.636667
Imapパッケージのgdist関数を使えば楕円体上の距離を計算できる. デフォルトでは地球の軌道長半径(a)と起動短半径(b)が設定してあるので,地球の地表距離が計算される.
lon.1, lat.1 : 始点の経度と緯度lat.2, lat.2 : 終点の経度と緯度units : 距離単位, デフォルトのnm(海里)の他にメートルm, キロメートル(‘km’), マイル(mile)がある広島と京都の地表距離の計算例:
library(Imap)
gdist(lon.1 = df$lon[1], lat.1 = df$lat[1], 
      lon.2 = df$lon[2], lat.2 = df$lat[2],
      units = "km")## [1] 311.356